using System;
using System.Collections.Generic;
using TestClassesForConcepts;
using TestClassesForConcepts.Sample3;

concept C1[T] 
{
    using AT1 = Sample1.A<Sample1.MyS, T>;
    //require AT1 == Sample1.C<Sample1.KeyA>;
}

concept C2[T, S, U, V] 
{
    type A1;
    using _C_T = Sample1.C<T>;
    require Sample1.B<A1, _C_T> <: Sample1.B<A1, S>;
    type B1;
    type B2;
    require B1 <: KeyQ;
    //require B1 >: KeyS1;
    
    //require SD1<T, B1> <: SC1<KeyS>;
    //require Sample1.C<V> <: Sample1.A<B1, B2>;
}